package Extends;

public class TestExtends {
    public static void main(String[] args){
        Dog bo = new Dog();
        bo.setName("jackYang");
        bo.setAge(66);
        bo.sleep(100);//方法重载
        System.out.print(bo.getAge());

    }
}
class Animal{
    public String name ;
    public void  eat(){
        System.out.println(name+"在吃东西");
    }
    public  void  sleep(){
        System.out.println(name+"睡觉");
    }
}
class Dog extends Animal{
    public int age;
    public void  setAge(int age){
        this.age=age;
    }
    public  void  sleep(int min){
        System.out.println(name+"sleep"+min);
    }
    public int getAge(){
        return  this.age;
    }
    public  void  setName(String name){
        this.name=name;
    }
}
//Java 不支持多继承
//父类 是通用类 子类是更为具体的类
/*子类拥有父类非 private 的属性、方法。

子类可以拥有自己的属性和方法，即子类可以对父类进行扩展。

子类可以用自己的方式实现父类的方法。

Java 的继承是单继承，但是可以多重继承，单继承就是一个子类只能继承一个父类，多重继承就是，例如 B 类继承 A 类，C 类继承 B 类，所以按照关系就是 B 类是 C 类的父类，A 类是 B 类的父类，这是 Java 继承区别于 C++ 继承的一个特性。

提高了类之间的耦合性（继承的缺点，耦合度高就会造成代码之间的联系越紧密，代码独立性越差）。*/

//类的继承是单继承 一个子类只能有一个父类 所以extends只能继承一个类

//区别好extends 和 implement可以变相是java具有多继承的特性，使用范围为类继承接口的情况，可同时继承多个接口（接口）
//继承父类用关键字extends 继承接口用implement 还有就是 继承接口可以变相让java的类实现多继承
//class A extends Class B
//class A implement B,C
// interface（接口）的区别 ！


//super 和 this 的区别
//super 与 this 关键字
//super关键字：我们可以通过super关键字来实现对父类成员的访问，用来引用当前对象的父类。
//this关键字：指向自己的引用。